Git LFSについて勉強

您所在的位置:网站首页 git svn clone -r Git LFSについて勉強

Git LFSについて勉強

#Git LFSについて勉強 | 来源: 网络整理| 查看: 265

概要説明します。

需要あるかわかりませんが、最近はGitHubも勉強しているため、自己啓発かねて書いていきます。

Git LFSの説明 GitHubの場合(使い方や制限等)

以下、目次となります!

Git LFSとは?GitHubの場合GitHubでLFSについてLFSストレージLFS帯域データパックLFSのサーバについて操作例初期設定Cloneの挙動その他まとめ Git LFSとは?

最初にGit LFSについて簡単に説明します。

Gitは大容量ファイルの管理は不得意。 Git内ではURL(ポインタ)だけ管理して、実体は別の場所に格納しよう。

え、これだけ?

はい。

不得意という言葉に対する具体的な症例として、操作が重くなるというのが一番でしょうか。(Gitにおいて管理ができなくなるってわけじゃありません。)

けど、GitHub、Gitlab、Backlog等のGitホスティングサービスでは、Gitリポジトリに大容量ファイルを突っ込まれても困るのか、容量制限があります。→ 1ファイル辺りの容量制限(100MB等)があるため、LFSを使わざるを得なかったり、大容量ファイルを諦めたり、大容量ファイルは別のDropboxサービスで管理って流れになります。

GitHubの場合 GitHubでLFSについて

公式サイトの関連記事はこの辺りでしょうか。

Git Large File Storageについて - GitHub DocsGitHub には、リポジトリで許可されるファイルのサイズに制限があります。 この制限を超えるファイルを追跡するには、Git Large File Storage を使います。ghdocs-prod.azurewebsites.net

数値関係をまとめておきますね(2023年時点)。

プラン1ファイル辺りの容量制限LFSストレージLFS帯域LFS利用時の最大ファイルサイズGithub.com(Free)100MB以上はだめ。1GB1GB2GBGithub.com(Team)100MB以上はだめ。1GB1GB4GBGitHub enterprise Cloud100MB以上はだめ。1GB12GB5GBGitHub enterprise Server特になし。(設定値を設けることも可)ーー?

GitHubだとPublicリポジトリだと色々な機能が無償で使えることがありますが、LFSはPublicリポジトリでもPrivateリポジトリと同じ制限です。

Enterpriseの場合はOrganizationの合計値になります。

以下はLFSに関する警告やエラー例です。

GitHub Desktopを利用している場合、コミット段階で次の警告が表示されます。

警告を無視してコミット後にプッシュすると、アップロードが終わった段階でErrorが表示されます(すぐにErrorにならない)。

なお、公式マニュアルによると、ファイル容量50MBを超えた段階で、GitHubから警告がくるようです。

LFSストレージ

LFS対象となったファイル置場の最大容量です。

例えば、100MBのファイルを10個格納したら一杯です。

LFS帯域

LFSストレージからファイルをダウンロードした容量のことです。

「LFSサーバ」 → 「自分のPC」

等の転送時にLFS帯域を消費します。

例えば、100MBのファイルを10個アップロードする分には問題ありませんが、100MBのファイルを10個ダウンロードすると、すっからかんです。

Publicだとやばいかな?

一般利用者のダウンロードですぐに消費かな。

データパック

LFSストレージやLFS帯域は「データパック」を購入することで追加出来ます。

Git Large File Storage をアップグレードする - GitHub Docs追加のデータパックを購入すると、Git LFS の毎月の帯域幅容量と総ストレージ容量を増やすことができます。ghdocs-prod.azurewebsites.net

1パック5USD

50GBのLFSストレージ 50GBのLFS帯域

です。

購入画面です(Freeプラン)

Enterpriseの場合は、年間購入っぽいです(実際に購入したことは無くてEnterpriseを試験運用したときに確認)。

購入画面です(Enterprise)。 LFSのサーバについて

自前で準備も出来るようです。

例えば、LFSサーバをAWSのS3とする場合ですね。→ 詳しくはググると、先輩方の実施記事がいくつも見つかりました。

けど管理を気を付けないと、面倒な割に、それなりに高額になるかも・・・。

S3ファイルのダウンロードがインターネットになる場合、データパックを購入するのと同じぐらいのコストです。

操作例

LFSをサポートしているGitホスティングサーバは結構ありますが、今回はGitHubを使いました。

初期設定

git lfsを導入していない場合は、別途導入しましょう。

Windowsであれば、以下からGitをデフォルトでインストールすれば入ります。

Git - Downloadsgit-scm.com $git lfs install Updated Git hooks. Git LFS initialized. $git lfs track "*.exe" Tracking "*.exe" → .gitattributesが生成されます。

この段階で関連ファイルをコミット&プッシュすれば準備完了です。

これら操作は代表者が最初に行えればOKです。

Cloneの挙動

GitHub Desktopの場合、LFSファイルも自動的にダウンロードされました。

大容量のLFSファイルも使うのであれば良いのですが、不要な場合、LFS帯域の節約のためにダウンロードしたくありません。

次のようなコマンドを実行しておくと、LFSファイルはポインタしかダウンロードしません。

$ git lfs install --skip-smudge Git LFS initialized. $ git config -l → filter.lfs.smudge=git-lfs smudge --skip -- %f  があれば設定OK

上記コマンドはリポジトリ内(.git)のフォルダじゃなくてOKです。

後から、ダウンロードしたい場合は、次のコマンドを実行します。

git lfs pull [ファイル名]

また、やっぱり最初から全部ダウンロードする設定に戻したい場合は、次のコマンドを実行します。

$ git lfs install Git LFS initialized. $ git config -l → filter.lfs.smudge=git-lfs smudge -- %f その他

◇GitHubでLFS帯域やストレージの制限を超えるとエラーが表示されます。

batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access. Uploading LFS objects: 0% (0/1), 0 B | 0 B/s, done. error: failed to push some refs to 'https://github.com/...git'

◇LFSファイルのダウンロードフェーズで「x509: certificate signed by unknown authority」が表示されてダウンロード出来ないことがありました(企業内だと多い?)

セキュリティ的によろしくありませんが、暫定で

git config –global http.sslverify false

とすることで回避出来ます。

git cloneの時にダウンロードしたくありません。

まとめ

Git LFSに関する簡単な説明及び、GitHubでのLFSに関してざっくりとご紹介しました。

100MB以上のファイルはLFSの仕組みを使わないと管理出来ない。 LFSにはストレージや帯域の制限があるため計画的に。

最後までご覧いただきありがとうございました。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3